﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
//para acessar o web.config
using System.Configuration;
//para trabalhar com o banco de dados
using System.Data.SqlClient;
using ServiceGerenciador.Model;
using System.Collections.Generic;



public partial class paginas_usuarioNovo : System.Web.UI.Page
{
   // static string stConn = @"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\Nany\Documents\Visual Studio 2008\WebSites\GerenciadoServicos\App_Data\servicos.mdf;Integrated Security=True;User Instance=True";
    protected int ModelId
    {
        get
        {
            if (Request.QueryString["Id"] != null)
            {
                return Convert.ToInt32(Request.QueryString["Id"]);
            }
            else
            {
                return 0;
            }
        }
    }
   

    protected void Page_Load(object sender, EventArgs e)
    {
        //if (!IsPostBack)
        //{
        //    //retona vetor: FindAll();
        //    var pessoas = Person.FindAll();

        //    ddPessoa.DataSource = pessoas;
        //    ddPessoa.DataTextField = "Nome";
        //    ddPessoa.DataValueField = "Id";
        //    ddPessoa.DataBind();

        //    ddPessoa.Items.Insert(0, "-- SELECIONE --");
        //}
        Initialize();
    }


    private void Initialize()
    {
        if (!IsPostBack)
        {
            if (this.ModelId > 0)
            {
                ddlPessoa.Enabled = false;
                txt_usuario.Enabled = false;

                User user = new User();

                user = ServiceGerenciador.Model.User.Find(Convert.ToInt32(ModelId));

                ddlPessoa.SelectedValue = Convert.ToString(user.Pessoa.Id);
                txt_usuario.Text = user.Usuario;
                txt_senha.Text = user.Senha;
                if (user.EhAdmin == true)
                {
                    administrador.Checked = true;
                }
                else
                {
                    administrador.Checked = false;
                }
            }
            else
            {
                btnExcluir.Visible = false;
            }
        }
    }


    //BOTÕES
    protected void btnVoltar_Click(object sender, EventArgs e)
    {
        Response.Redirect("Usuarios.aspx");
    }
    //public void btnSalvar_Click(object sender, EventArgs e)
    //{

    //}
    //protected void Button2_Click(object sender, EventArgs e)
    //{
    //    Execute aux = new Execute();
    //    String sql;
    //    if (txt_nusuario.Text != null)
    //    {
    //        //sql = "INSERT INTO usuarios (usuario, senha, perfil) VALUES  ('" + txt_nusuario.Text + "','" + txt_nsenha.Text + "'" + );
    //        //aux.executa(sql);
    //    }
    //    Response.Redirect("Usuarios.aspx");
    //}
    //protected void btnEditar_Click(object sender, EventArgs e)
    //{
    //    //Execute aux = new Execute();
    //    //String sql;

    //    //if (txt_nusuario.Text != null)
    //    //{
    //    //      //Response.End();

    //    //    sql = "UPDATE pessoa SET senha = '" + txt_nsenha.Text + "', perfil = " + int.Parse(ddl_nperfil.SelectedValue) + " where usuario = '" + txt_nusuario.Text + "'";

    //    //    aux.executa(sql);
            
    //    //}
    //    //Response.Redirect("Usuarios.aspx");
    //}
   


    ////MÉTODOS
    //private void CarregaPagina(string user)
    //{
    //    Usuarios objUsu = new Usuarios(user);
    //    txt_nusuario.Text = objUsu.Usuario;
    //    txt_nsenha.Text = objUsu.Senha;        

    //}
    //protected void txt_nusuario_TextChanged(object sender, EventArgs e)
    //{

    //}
    //protected void txt_nusuario_TextChanged1(object sender, EventArgs e)
    //{        
    //}

    protected void btnSalvar_Click1(object sender, EventArgs e)
    {
        //Execute aux = new Execute();
        //string cgccpf = Request.Params["cgccpf"];

        //if (txt_nsenha.Text != null)
        //{
        //    aux.executa("UPDATE FROM pessoa SET senha = " + txt_nsenha.Text + "WHERE cgccpf = " + cgccpf);
        //}
        //Response.Redirect("Usuarios.aspx");
    }
    protected void btnSalvar_Click(object sender, EventArgs e)
    {
        if (Page.IsValid)
        {
            if (ModelId > 0)
            {                
                User user = new User();
                user = user = ServiceGerenciador.Model.User.Find(Convert.ToInt32(ModelId)); 

                user.Pessoa = Person.Find(Convert.ToInt32(ddlPessoa.SelectedValue));
                user.Usuario = txt_usuario.Text;
                user.Senha = txt_senha.Text;
                if (administrador.Checked==true){
                   user.EhAdmin = true;
                }
                else{
                    user.EhAdmin = false;
                }
                user.Update();

                ApplicationEnvironment.Instance.Flash["Notice"] = "Usuário atualizado com sucesso!";

                Response.Redirect("Usuarios.aspx");
            }
            else
            {                

                User user = null;

                user = new User();

                user.Pessoa = Person.Find(Convert.ToInt32(ddlPessoa.SelectedValue));                

                user.Usuario = txt_usuario.Text;
                user.Senha = txt_senha.Text;
                if (administrador.Checked == true)
                {
                    user.EhAdmin = true;
                }
                else
                {
                    user.EhAdmin = false;
                }
                user.Save();

                ApplicationEnvironment.Instance.Flash["Notice"] = "Usuário cadastrado com sucesso!";

                Response.Redirect("Usuarios.aspx");
            }
        }
    }
    protected void btnCancelar_Click(object sender, EventArgs e)
    {
        Response.Redirect("Usuarios.aspx");
    }
    protected void btnExcluir_Click(object sender, EventArgs e)
    {
        User user = ServiceGerenciador.Model.User.Find(Convert.ToInt32(ModelId)); 
        user.Delete();

        ApplicationEnvironment.Instance.Flash["Notice"] = "Usuário excluído com sucesso!";

        Response.Redirect("Usuarios.aspx");
    }
}

